home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus Special 25
/
AMIGAplus Sonderheft 25 (2000)(Falke)(DE)(Track 1 of 4)[!].iso
/
Updates
/
AmigaOS3.5
/
IPop
/
arexx.c
< prev
next >
Wrap
C/C++ Source or Header
|
2000-05-16
|
2KB
|
103 lines
#ifndef __COMMON_H__
#include "common.h"
#endif /* __COMMON_H__ */
#ifndef __AREXX_CMDS_H__
#include "arexx_cmds.h"
#endif /* __AREXX_CMDS_H__ */
extern BOOL running;
extern struct PopData *pd;
BOOL initARexx(struct PopData *pd)
{
BOOL result = FALSE;
if(pd->pd_ARexx = ARexxObject,
AREXX_HostName, pd->pd_ARexxPort ? pd->pd_ARexxPort : (UBYTE*)"IPOP.1",
AREXX_Commands, ARexxCommands,
AREXX_NoSlot, TRUE,
End)
{
GetAttr(AREXX_SigMask, pd->pd_ARexx, &pd->pd_rexxSigBit);
result = TRUE;
}
else
{
char buffer[64];
sprintf(buffer, "ARexx port %s already exists", pd->pd_ARexxPort);
requestUser(buffer);
}
return(result);
}
/*****************************************************************************/
VOID disposeARexx(struct PopData *pd)
{
if(pd->pd_ARexx)
{
DisposeObject(pd->pd_ARexx);
}
}
VOID __saveds __asm rexx_Check(register __a0 struct ARexxCmd *ac, register __a1 struct RexxMsg *rm)
{
if(ac->ac_ArgList[0])
{
pd->pd_Check = *((LONG*)ac->ac_ArgList[0]) * 60;
AbortIO((struct IORequest*)pd->pd_TimeRequest);
WaitIO((struct IORequest*)pd->pd_TimeRequest);
pd->pd_TimeRequest->tr_node.io_Command = TR_ADDREQUEST;
pd->pd_TimeRequest->tr_time.tv_secs = pd->pd_Check * 60;
pd->pd_TimeRequest->tr_time.tv_micro = 0;
SendIO((struct IORequest*)pd->pd_TimeRequest);
}
else
{
doPop(pd);
}
ac->ac_Result = "1";
}
VOID __saveds __asm rexx_Quiet(register __a0 struct ARexxCmd *ac, register __a1 struct RexxMsg *rm)
{
if(pd->pd_Quiet)
{
pd->pd_Quiet = FALSE;
ac->ac_Result = "0";
}
else
{
pd->pd_Quiet = TRUE;
ac->ac_Result = "1";
}
}
VOID __saveds __asm rexx_Version(register __a0 struct ARexxCmd *ac, register __a1 struct RexxMsg *rm)
{
ac->ac_Result = VERS;
}
VOID __saveds __asm rexx_Quit(register __a0 struct ARexxCmd *ac, register __a1 struct RexxMsg *rm)
{
running = FALSE;
ac->ac_Result = "1";
}
VOID __saveds __asm rexx_Author(register __a0 struct ARexxCmd *ac, register __a1 struct RexxMsg *rm)
{
ac->ac_Result = AUTHOR;
}
VOID __saveds __asm rexx_Waiting(register __a0 struct ARexxCmd *ac, register __a1 struct RexxMsg *rm)
{
static UBYTE buffer[5];
sprintf(buffer, "%ld", pd->pd_TotalMsg);
ac->ac_Result = buffer;
}